package com.example.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.domain.OperationLog;
import com.example.util.Result;

import java.util.List;
import java.util.Date;

/**
* @author HP
* @description 针对表【operation_log】的数据库操作Service
* @createDate 2025-08-18 19:33:10
*/
public interface OperationLogService extends IService<OperationLog> {

    /**
     * 记录操作日志
     * @param operatorId 操作员ID
     * @param entityId 实体ID
     * @param entityType 实体类型
     * @param reason 操作原因
     * @return 是否记录成功
     */
    boolean recordLog(Long operatorId, Long entityId, Integer entityType, String reason);

    /**
     * 根据用户ID查询操作日志
     * @param operatorId  用户ID
     * @return 操作日志列表
     */
    Result getLogsByOperatorId(Long operatorId);

    /**
     * 根据实体类型查询日志
     * @param entityType  实体类型
     * @return 操作日志列表
     */
    Result getLogsByEntityType(Integer entityType);

    /**
     * 根据时间范围查询日志
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 操作日志列表
     */
    Result getLogsByTimeRange(Date startTime, Date endTime);

    /**
     * 查询所有操作日志
     * @return 操作日志列表
     */
    Result listAllLogs();
}
